#include <iostream>

int resume[10] = {6,2,5,5,4,5,6,3,7,6};
const int MAXLEN = 11111;
int cost[MAXLEN];

int calc_matchs(int num){
    if (num == 0) return resume[0]; // 修正：0 需要 6 根
    int ret = 0;
    while(num){
        ret += resume[num % 10];
        num/=10;
    }
    return ret;
}

int main(){
    int n;
    for(int i = 0; i < MAXLEN; ++i){
        cost[i] = calc_matchs(i);
    }
    while(std::cin >> n){
        if (n < 4) { std::cout << 0 << std::endl; continue; }
        n -= 4; // “+”和“=”共 4 根

        int ans = 0;
        for(int i = 0; i < MAXLEN; ++i){
            for(int j = i; j < MAXLEN; ++j){
                int k = i + j;
                if(k >= MAXLEN) break; // 修正越界条件
                if(cost[i] + cost[j] + cost[k] == n){
                    ans += (i == j) ? 1 : 2; // (i,j) 和 (j,i)
                }
            }
        }
        std::cout << ans << std::endl;
    }
    return 0;
}